package com.screx.mcloud.lib.utils

import android.app.Activity
import com.ba.base.view.WeChatPresenter
import com.ypx.imagepicker.ImagePicker
import com.ypx.imagepicker.bean.ImageItem
import com.ypx.imagepicker.bean.MimeType
import com.ypx.imagepicker.bean.SelectMode
import com.ypx.imagepicker.builder.MultiPickerBuilder
import com.ypx.imagepicker.data.OnImagePickCompleteListener




/**
 *
 */
object ImagePickHelper {

    /**文件最大大小*/
    const val LIMIT_LENGTH = 200 * 1024 * 1024

    fun image(picked: ArrayList<ImageItem>): MultiPickerBuilder {
        val type = HashSet<MimeType>()
        type.add(MimeType.PNG)
        type.add(MimeType.JPEG)
        return ImagePicker.withMulti(WeChatPresenter())
            .setMaxCount(5)
            .setColumnCount(4)
            .mimeTypes(type)
            //显示拍照
            .showCamera(true)
            //开启预览
            .setPreview(true)
            //显示原图
            .setOriginal(false)
            .setSelectMode(SelectMode.MODE_SINGLE)
            .setShieldList<Any>(null)
            .setLastImageList<ImageItem>(picked)
    }

    fun imageOne(picked: ArrayList<ImageItem>): MultiPickerBuilder {
        val type = HashSet<MimeType>()
        type.add(MimeType.PNG)
        type.add(MimeType.JPEG)
        return ImagePicker.withMulti(WeChatPresenter())
            .setMaxCount(1)
            .setColumnCount(4)
            .mimeTypes(type)
            //显示拍照
            .showCamera(true)
            //开启预览
            .setPreview(true)
            //显示原图
            .setOriginal(true)
            .setSelectMode(SelectMode.MODE_SINGLE)
            .setShieldList<Any>(null)
            .setLastImageList<ImageItem>(picked)
    }
    fun takeVideo(activity: Activity) {
        val name = "视频名称,不要加后缀" //可为null

        val maxDuration = 10000L //可录制的最大时常,单位毫秒ms

        val isCopyInDCIM = true //copy一份保存到系统相册文件

        ImagePicker.takeVideo(
            activity,
            name,
            maxDuration,
            isCopyInDCIM,
            OnImagePickCompleteListener {
                //视频回调，主线程
            })
    }
    fun video(): MultiPickerBuilder {
        val type = HashSet<MimeType>()
        type.add(MimeType.MP4)
        type.add(MimeType.MPEG)
        type.add(MimeType.AVI)
        type.add(MimeType.MKV)
        type.add(MimeType.THREEGPP)
        return ImagePicker.withMulti(WeChatPresenter())
            //设置选择的最大数
            .setMaxCount(1)
            //设置列数
            .setColumnCount(4)
            //设置要加载的文件类型，可指定单一类型
            .mimeTypes(type)
            //显示拍照
            .showCamera(false)
            //开启预览
            .setPreview(false)
            //大图预览时是否支持预览视频
            .setPreviewVideo(false)
            //设置视频单选
            .setVideoSinglePick(true)
            //设置图片和视频单一类型选择
            .setSinglePickImageOrVideoType(true)
            //当单选或者视频单选时，点击item直接回调，无需点击完成按钮
            .setSinglePickWithAutoComplete(true)
            //显示原图
            .setOriginal(false)
            //显示原图时默认原图选项开关
            .setDefaultOriginal(false)
            //设置单选模式，当maxCount==1时，可执行单选（下次选中会取消上一次选中）
            .setSelectMode(SelectMode.MODE_SINGLE)
            //设置视频可选取的最大时长,同时也是视频可录制的最大时长
            .setMaxVideoDuration(15*1000)
            //设置视频可选取的最小时长
            .setMinVideoDuration(1000L)
            .setShieldList<Any>(null)
            .setLastImageList<ImageItem>(null)
    }
}